package com.youlu.campus.entity.order;

import com.youlu.campus.base.base.EntityBase;
import com.youlu.campus.entity.enums.SharingProfitOrderTypeEnum;
import com.youlu.campus.entity.enums.SharingProfitStatus;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;


/**
 * 分帐订单明细
 */
@Getter
@Setter
@Document(collection = "sharing_profit_order_detail")
@CompoundIndexes({
        @CompoundIndex(name = "pay_time_status", def = "{'payTime':-1,'sharingProfitStatus':-1}")
})
public class SharingProfitOrderDetail extends EntityBase {

    /**
     * 活动ID
     */
    private String activityId;

    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 原订单号
     *
     */
    private String orderNo;
    /**
     * 分账账户 商户Id/openId
     */
    private String sharingProfitAccount;
    /**
     * 微信分账订单号
     */
    private String profitSharingOrderNo;

    private String transactionId;

    private Date payTime;

    /**
     * 分账订单号总金额（单位分）
     */
    private Integer orderAmount;


    /**
     * 分账类型
     * 电子证书订单  DIGITAL_CA_ORDER
     * <p>
     * 纸质证书订单 PAPER_CA_ORDER
     * <p>
     * 视频订单  VIDEO_ORDER
     */
    private SharingProfitOrderTypeEnum sharingProfitOrderType;

    /**
     * 分账金额比例
     */
    private Double sharingProfitRatio;

    /**
     * 分账金额（单位分）
     */
    private Integer sharingProfitAmount;
    /**
     *  分账状态
     *      UNHANDLED(0, "未处理"),//未处理
     *
     *     HANDLED(1, "已打款"),//已处理-已打款到分账
     *
     *     CLOSE(2, "关闭"),//关闭
     *
     *     CANCEL(3, "取消"),//取消
     *
     *     SHARING_PROFIT_GO_BACK(4, "退回")//利润分账已从对方账户退回
     */
    private Integer sharingProfitStatus = SharingProfitStatus.UNHANDLED.getValue();

    /**
     * 备注信息 如退回订单备注
     */
    private String remark;
    /**
     * 分账退回时间
     */
    private Date sharingProfitRefundTime;

    /**
     * 分账类型 1、商户 2、个人
     */
    private Integer sharingProfitType  =1;

    private String appId;

    /**
     * 商户号ID-所属分账订单
     */
    private String merchantId;

    /**
     * 商户号名称-所属分账订单
     */
    private String merchantName;

    /**
     * 总的分账数量
     */
    private Integer sharingProfitTotalNum = 1;

}
